Many Interactive Development Environment (IDE) tools exist today to assist users in creating business enterprise computer applications and/or web pages or web applications for conducting business with on-line customers of the enterprise. A few examples are the aforementioned Eclipse® Integrated Development Environment and the Microsoft Corporation's Visual Studio® product. In practice, nearly all enterprise web applications are built using a set of libraries in a composing framework such as Apache® Struts®, Java® ServerFaces® or MicroSoft's ASP.NET®. IDE's often come bundled with web frameworks such as the aforementioned ones, for convenient use. Such web frameworks share the commonality of a session application interface for allowing developers to make objects persistent between web page invocations by an end user, but the IDE's are currently unaware of the usage of the session interfaces and they are treated just as any other library function.
Although it is often convenient to use such APIs, use of them to create a way to share state information between web servers can be problematic for the user because putting too many data structures into a session can virtually clog the operation of a website. For example, use of an HttpSession to maintain temporary user state information for a user's online session can present an enormous problem is, say, 1000 logged-in users each have a one-megabyte temporary storage of session information, the requirement on the system is for one gigabyte or more of memory in use to maintain the integrity of the 1000 user sessions in operation at the time. The general rule of thumb, however, is that programmers creating software for HttpSessions should store only as much state data or information as is necessary for the current business transaction and no more. Thus, when a developer writes the source code and finds it convenient to use the HttpSession API to insert an object, they need to be consistent in removing the object from the session once it is no longer needed for the business transaction. But keeping track of what is put into the session and what is taken out is difficult to do at the time the code is being created or developed by the programmer. The available solutions all provide for inspection and removal of unnecessarily saved data only later when a debugger after the application under development has been compiled.
The present invention solves this problem by providing a static monitoring and analysis tool enhancement to the IDE system which collects information from the source code the user-programmer is building. This information is used to help the user-programmer detect conditions where objects may inadvertently have been left in session. This analysis occurs at development time instead of after the application is actually deployed.